home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Personal Computer World 2005 October
/
PCWOCT05.iso
/
Software
/
FromTheMag
/
Syn Text Editor 2.1.0.46
/
synsetup-2.1.0.46.exe
/
{app}
/
scripts
/
openfile.vbs
< prev
next >
Wrap
Text File
|
2003-08-13
|
4KB
|
121 lines
' Caption: Open File|
' Hint: Open File|
' Icon: openfile.ico|
'
' syn
' Copyright (C) 2000-2003, Ascher Stefan. All rights reserved.
' stievie@utanet.at, http://web.utanet.at/ascherst/
'
' The contents of this file are subject to the Mozilla Public License
' Version 1.1 (the "License"); you may not use this file except in compliance
' with the License. You may obtain a copy of the License at
' http://www.mozilla.org/MPL/
'
' Software distributed under the License is distributed on an "AS IS" basis,
' WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
' the specific language governing rights and limitations under the License.
'
' The Original Code is openfile.vbs, released Sun, 26 May 2002 10:55:39 UTC.
'
' The Initial Developer of the Original Code is Ascher Stefan.
' Portions created by Ascher Stefan are Copyright (C) 2000-2003 Ascher Stefan.
' All Rights Reserved.
'
' Contributor(s): .
'
' Alternatively, the contents of this file may be used under the terms of the
' GNU General Public License Version 2 or later (the "GPL"), in which case
' the provisions of the GPL are applicable instead of those above.
' If you wish to allow use of your version of this file only under the terms
' of the GPL and not to allow others to use your version of this file
' under the MPL, indicate your decision by deleting the provisions above and
' replace them with the notice and other provisions required by the GPL.
' If you do not delete the provisions above, a recipient may use your version
' of this file under either the MPL or the GPL.
'
' You may retrieve the latest version of this file at the syn home page,
' located at http://syn.sourceforge.net/
'
' $Id: openfile.vbs,v 1.4.2.5 2003/08/13 00:38:45 neum Exp $
' assumes the selected text is a (part of a) filename and opens it, example:
' select cmnfunc and run this script. This works also with forward slashed filenames
' as found in links, so you can use it to open links with it, like syn/ver2/index.htm.
' If SelText = "" it searchs for a valid filename at the caret pos.
option explicit
' Remove the dot to include this files
'#.include <consts>
'#include <cmnfunc>
dim BlankChars(13)
sub Main(dummy)
if Documents.Count = 0 then
exit sub
end if
dim s
s = ActiveDocument.SelText
if s = "" then
s = FindLink
end if
if not FileExists(s) then
s = GetAbsoluteFile(ActiveDocument.FileName, s)
end if
if (not FileExists(s)) and (ExtractFileExt(s) = "") then
s = s & ExtractFileExt(ActiveDocument.FileName)
end if
if FileExists(s) then
Documents.Open false, s, false
end if
end sub
function FindLink
BlankChars(0) = "*"
BlankChars(1) = "?"
BlankChars(2) = "="
BlankChars(3) = Chr(34)
BlankChars(4) = "<"
BlankChars(5) = ">"
BlankChars(6) = ","
BlankChars(7) = ";"
BlankChars(8) = "+"
BlankChars(9) = "^"
BlankChars(10) = Chr(10)
BlankChars(11) = Chr(13)
BlankChars(12) = Chr(9)
BlankChars(13) = " "
dim x, y
dim l
x = ActiveDocument.CaretX
y = ActiveDocument.CaretY
l = ActiveDocument.Lines(y - 1) ' 0-based
if Trim(l) = "" then exit function
dim i
dim p1, p2
p1 = x
p2 = x
while not IsBlank(Mid(l, p1, 1)) and (p1 >= 0)
p1 = p1 - 1
wend
while not IsBlank(Mid(l, p2, 1)) and (p2 <= Len(l))
p2 = p2 + 1
wend
if p1 < p2 then
FindLink = Mid(l, p1 + 1, p2 - p1 - 1)
end if
end function
function IsBlank(s)
dim i
IsBlank = false
for i = 0 to UBound(BlankChars)
if s = BlankChars(i) then
IsBlank = true
exit for
end if
next
end function